const getIntTo2Power = (i) => {
    console.log(recursion(i));
}

//递归方法
const recursion = (i, result = '') => {
    //2的多少次幂最接近i？
    //向下取整保证小于等于i
    let index = Math.floor(Math.log2(i));
    //这个数要是比i小
    if (i > 2 ** index) {
        //计算这个数的表达式
        if (index === 0) {
            result += '2(0)+';
        } else if (index === 1) {
            result += '2+';
        } else {
            result += '2(' + recursion(index) + ')+';
        }
        // 计算i比这个数 大的部分 的表达式
        result += recursion(i - 2 ** index);
    }
    //要是正好等于i
    else {
        if (index === 0) {
            result += '2(0)';
        } else if (index === 1) {
            result += '2';
        } else {
            result += '2(' + recursion(index) + ')';
        }
    }
    return result;
}

getIntTo2Power(1315);



























